using ZFramework;

namespace PaintAWorld
{
    public interface IPlayerInputContent {}
    public struct PlayerInput
    {
        public IPlayerInputContent content;
        public PlayerInput(IPlayerInputContent ctx)
        {
            content = ctx;
        }
    }

    namespace PlayerInputs
    {
        public struct Move(Vec3 position) : IPlayerInputContent
        {
            public Vec3 position = position;
        }

        public struct SetVoxel(Vec3I voxelPos, Rgba32 color) : IPlayerInputContent
        {
            public Vec3I voxelPos = voxelPos;
            public Rgba32 color = color;
        }

        public struct RemoveVoxel(Vec3I voxelPos) : IPlayerInputContent
        {
            public Vec3I voxelPos = voxelPos;
        }
    }
}